A user interface (UI) of a computer program, to be considered favorably by end users, needs to be appealing, straightforward to use and consistent in its operation. One of the ways to make a UI straightforward to use is by using various mechanisms to guide the user in knowing where he or she is operating with respect to the UI. A typical UI example is to highlight the currently focused UI element, so that the user knows that further interaction with that element (e.g., a click, tap, double-click, typing the “Enter” keyboard key and so on) will cause some action related to that particular element to be taken.
To be appealing and consistent, a designer of the UI wants to choose colors, font sizes, UI element positions and so forth that are attractive yet do not vary too much from one another for the most part. For example, consider a menu containing interactive elements. Once a user learns how to interact with that menu, e.g., the user quickly knows which item is in focus, knows how to move around within the menu to select items and so forth, then consistency may be achieved by making similar menus generally appear and operate in the same way.
At the same time, a designer may still want some different types of menus, (e.g., lists versus grids of selectable elements) and interactive elements, and to sometimes use techniques such as different color schemes to emphasize those differences. Having the same font color, font size, background color and so forth can make the design easier to implement, but is very limiting to designers who want to provide a UI that is appealing, straightforward to use and generally (but not entirely) consistent. Such a UI design is thus not straightforward to implement from the designer's perspective, given the many hundreds or even thousands of different UI elements that each have certain properties which taken together accomplish the designer's goal.